<%@ page contentType="text/html; charset=UTF-8"%>
<SCRIPT LANGUAGE="JavaScript">
	/* 提示错误信息 */
	function ShowErr(nErr, sCmd) {
		if (nErr) {
			alert(sCmd + "失败：" + nErr);
		} else {
			alert(sCmd + "成功！");
		}
	}

	/* 命令执行 */
	function DoTesoCmd(nCmd,regId,validId) {
		//regId 模板EDIT
		// validId 特征EDIT
		var nPortNo = 0; // 端口SLCT
		var dwWaitTime = 18000; // 超时EDIT
		var nLevel = 3; // 安全级SLCT

		var nRet = -1;
		var sDvSn = "";
		if (typeof (ObjFinger) == "undefined") {
			alert("控件未找到，请检查HTMl代码里的OBJECT");
			return -1;
		}

		// TESO
		//if (typeof (ObjFinger.nSucStrFmtTyp) != "undefined") {
		// 0x30 拆分格式
		ObjFinger.nSucStrFmtTyp = 1;
		// 商行协议
		ObjFinger.nComProtocol = 2;
		// USB协议
		ObjFinger.nUsbProtocol = 0;
		// 是否检测抬起
		ObjFinger.nRegChkToLv = 1;
		// 是否显示 注册指纹模板时的对话框
		ObjFinger.nRegShowDlg = 1;
		// 是否显示 验证指纹特征时的对话框
		ObjFinger.nVerShowDlg = 1;
		// 是否禁用自动提速  0-启用自动提速， 4=固定9600波特率
		ObjFinger.nNotSpeedUp = 4;
		//}

		// 通用方法
		switch (nCmd) {
		case 0: // 注册模板，Base64
			nRet = ObjFinger.FPIGetTemplate(nPortNo, dwWaitTime);
			if (nRet) {
				$("#"+regId).val(nRet);
				alert("注册指纹模板失败。错误码:[" + nRet + "]");
			} else {
				$("#"+regId).val(ObjFinger.FPIGetFingerInfo());
			}
			break;

		case 1: // 验证特征，Base64		
			nRet = ObjFinger.FPIGetFeature(nPortNo, dwWaitTime);
			if (nRet) {
				$("#"+validId).val(nRet);
				alert("验证指纹特征失败。错误码:[" + nRet + "]");
			} else {
				$("#"+validId).val(ObjFinger.FPIGetFingerInfo());
			}
			break;

		case 2: // 比对，Base64
			nRet = ObjFinger.FPIFpMatch($("#"+regId).val(), $("#"+validId).val(), nLevel);
			return nRet;
			//ShowErr(nRet, "比对");
			break;

		case 3:
			//取出刚才注册指纹的3枚图像
			//FPIGetImageData(nImageIndex) 
			//nImageIndex：图像索引1~3
			//返回值：base64编码之后的图像

			//SaveBmpB64(chSaveFile, chImageData, nDecodeType)
			//chSaveFile 保存路径
			//chImageData 图像内容，等于FPIGetImageData的返回值
			//nDecodeType 编码格式 传入 2 即可 

			sImgVal1 = ObjFinger.FPIGetImageData(1);
			ObjFinger.SaveBmpB64('c:\\Teso01.bmp', sImgVal1, 2);
			sImgVal2 = ObjFinger.FPIGetImageData(2);
			ObjFinger.SaveBmpB64('c:\\Teso02.bmp', sImgVal2, 2);
			sImgVal3 = ObjFinger.FPIGetImageData(3);
			ObjFinger.SaveBmpB64('c:\\Teso03.bmp', sImgVal3, 2);

			break;

		case 20: // 发现设备
			/* function TcWhereAreu(nBgn:I4; nEnd:I4; nRidx:I4; nMask:I4; chFix:BSTR): I4; */
			/* nBgn和nEnd	要搜索的目标端口区间[]，0为USB，>=1为COM		*/
			/* nRidx		串口波特率索引号[0, 7]，对应为[1200, 115200]	*/
			/* nMask		附加功能的掩码：Bit0为在搜索COM前，是否先搜USB	*/
			/*				Bit1-7为x0.1s超时(0默认0.6s)，Bit8-15为分隔符	*/
			/* chFix		BP盒的前后缀字串儿，可为NULL，默认0用'|'分隔	*/
			/* 返回值		<0失败，>=0发现有设备连接：0为USB，>=1为COM		*/
			nRet = ObjFinger.TcWhereAreu(0, 16, 3, 0, "");
			if (nRet >= 0) {
				FpDemo.Comm.value = nRet;
				alert("发现设备：" + nRet);
			} else {
				alert("没有发现设备");
			}
			break;

		case 10:// 验证控件是否符合规范
			var v1 = typeof (ObjFinger.FPIFpMatch);
			var v2 = typeof (ObjFinger.FPIGetFeature);
			var v3 = typeof (ObjFinger.FPIGetTemplate);
			var eMsg = "";
			if (v1 == "undefined")
				eMsg += "没有 FPIFpMatch 方法\n";
			if (v2 == "undefined")
				eMsg += "没有 FPIGetFeature 方法\n";
			if (v3 == "undefined")
				eMsg += "没有 FPIGetTemplate 方法\n";
			if (eMsg != "") {
				alert(" 错误：\n\n");
			} else {
				alert("标准调用方法都存在！请分别测试 注册、验证、比对");
			}
			break;

		default:
			alert("错误的命令");
		}
	}
//-->
</SCRIPT>